danynash
  • Home
  • About me
  • My Research
  • Selected Publications
  • Tutorials
  • Lessons

Contenido

  • Objetivo
  • Descripción
  • Contexto Educativo
    • Descripción Caso 1
    • Descripción Caso 2
  • Abordaje del problema
  • Flujo de trabajo
    • Etapa 0: Elementos previos
  • Caso 1
    • Etapa 1: Abrir/Crear bases de datos
    • Etapa 2: Inspección de datos y ajuste de modelos
    • Etapa 3: Formateo de resultados
    • Etapa 4: Reporte de resultados
      • Interpretación del intercepto (\(\beta_0\)) y pendiente (\(\beta_1\))
  • Caso 2
    • Etapa 1: Abrir/Crear los datos
    • Etapa 2: Inspección de datos y ajuste de modelos
    • Etapa 3: Formateo de resultados
    • Etapa 4: Reporte de resultados
      • Interpretación del intercepto (\(\beta_0\)) y pendiente (\(\beta_1\))
  • Ejemplo de Reportes: Publicaciones
    • Artículos de investigación que reportan evidencia de regresión lineal simple

Formativa 03: Aplicación Regresión lineal simple

EDU3826

Author

Dany Lopez (dxlopez@ul.cl) - José Luis Pérez (josel.perez@uc.cl)

Modified

May 9, 2024

Objetivo

  • Aplicar modelos de regresión lineal simple
  • Comprender los conceptos asociado a los modelos de regresión lineal simple.
  • Interpretar los coeficientes de regresión lineal (intercepto y pendiente) situado a los contextos educativos.

Descripción

Sabemos que de manera genérica, un modelo lineal simple queda expresado de la siguiente forma \[Y=\beta_0 + \beta_1 X +\varepsilon.\]

En el que

  • \(Y\) es la variable dependiente (por ejemplo, rendimiento académico).
  • \(X\) es la variable independiente (por ejemplo, género).
  • \(\beta_0\) es el intercepto.
  • \(\beta_1\) es el coeficiente que expresa la relación lineal entre \(Y\) con \(X\).
  • \(\varepsilon\) es el término de error.

Si denotamos por \(\hat Y = \beta_0 + \beta_1 X\) al valor predicho por el modelo, entonces la ecuación anterior se puede escribir de la siguiente forma

\[Y=\hat Y +\varepsilon.\] Es decir, existe una desviación o error \(\varepsilon\) en la predicción \(\hat Y\) al compararlo con el valor observado \(Y\).

Con el objetivo de comprender y situar la interpretación de los coeficienes \(\beta_0\) y \(\beta_1\), vamos a considerar dos casos:

  • El primer caso (Caso 1), corresponde a una situación en el que se tiene una variable independiente numérica (de razón o intervalo) como predictor de los puntajes de una variable dependiente también numéria (de razón o intervalo).

  • El segundo caso (Caso 2), corresponde a un problema en el que se tiene una variable independiente categórica (por ejemplo nominal o factores) como predictor de los puntajes de una variable dependiente también numéria (de razón o intervalo).

Lo anterior se resume en la siguiente tabla, vea que ambos casos involucra \(Y\) medida en una escala numérica.

Caso Escala Medición variable dependiente (\(Y\)) Escala Medición variable explicativa (\(X\))
Caso 1 Numérica Numérica
Caso 2 Numérica Categórica

Luego, para estos dos casos vamos a interpretar el coficiente \(\beta_0\) (intercepto) y \(\beta_1\) (pendiente) al ajustar el modelo de regresión lineal. De tal forma, lograremos comprender la relación entre \(Y\) y \(X\). Partiremos con el caso 1 y para luego abordar del caso 2.

Contexto Educativo

Descripción Caso 1

La base de datos utilizada en el Caso 1 proviene de un estudio hipotético (simulación) para explorar la relación que tiene las ausencias escolares de los estudiantes de una escuela secundaria en su rendimiento académico. En este contexto, el rendimiento académico se mide en una escala de 0 a 100, y las ausencias se mide como la cantidad total de días que un estudiante no asistió a la escuela durante un semestre.

Descripción Caso 2

La base de datos utilizada en el Caso 2 proviene de un estudio hipotético para explorar la relación entre género con el rendimiento académico de estudiantes de una escuela secundaria. La motivación detrás de este estudio es comprender si existe una diferencia significativa en el rendimiento académico entre estudiantes mujeres y hombres.En este contexto, el rendimiento académico se mide en una escala de 0 a 100, y el género se mide como una variable binaria (0 para hombres y 1 para mujeres).

Abordaje del problema

A continuación se encuentra el flujo de trabajo por medio del cual se abordará cada caso.

Flujo de trabajo

  • La gran mayoria de los procedimientos involucrados en análisis de datos involucra ciertas etapas estables que responden a propósitos especificos. En conjunto, estas etapas logran cumplir el propósito general de un problema de investigación.

  • Estos pasos son:

    • Etapa 1: Abrir/Crear los datos
    • Etapa 2: Inspección de datos y ajuste de modelos
    • Etapa 3: Formateo de resultados
    • Etapa 4: Reporte de resultados

Etapa 0: Elementos previos

Esta etapa consiste en incluir elementos previos que necesarios para ejecutar códigos en R. Para el presente taller vamos a emplear algunas librerias fundamentales para procesar inicialmente nuestros datos, como la librería readxl,dplyr, tidyr y ggplot2 Para que los códigos incluídos como guías de este taller funcionen es necesario que las librerías recomendadas sean instaladas primero, una vez que se instalan no se deben volver a instalar.

Esta librería, la podemos llamar e instalar empleando las siguientes línea de código:

#--------------------------------------
# instalar librerias
#--------------------------------------

#install.packages('readr') # borrar el símbolo # para ejecutar código
#------------------------------------------------------------------------------
#  cargar librarias
#------------------------------------------------------------------------------

library(readxl)
library(readr)
library(ggplot2)

#------------------------------------------------------------------------------
#  Opcioes especiales
#------------------------------------------------------------------------------

# Evita la notacion cientifica
options(scipen=999)

Caso 1

Etapa 1: Abrir/Crear bases de datos

  • Vamos a creae una base de datos en R y la vamos a guardar como un archivo CSV para su posterior análisis. Note que ahora utilizamos la función data.frame() para construir nuestra tabla.
# Crear la base de datos
data <- data.frame(
  student_id = 1:60,
  absences = c(10, 5, 12, 3, 7, 8, 11, 2, 15, 6, 9, 13, 4, 14, 1, 16, 7, 5, 12, 3, 8, 10, 6, 11, 2, 14,
               9, 13, 4, 1, 15, 8, 7, 12, 3, 5, 11, 6, 10, 14, 9, 13, 4, 2, 8, 15, 7, 12, 6, 10, 5, 11, 3, 14, 1, 9, 15, 8, 4, 7),
  academic_performance = c(75, 88, 70, 92, 85, 78, 72, 95, 60, 80, 76, 65, 90, 62, 98, 58, 83, 86, 68,
                           93, 77, 74, 82, 71, 96, 64, 75, 66, 91, 97, 61, 79, 84, 69, 94, 87, 73, 81,
                           76, 63, 74, 67, 89, 97, 78, 59, 85, 70, 80, 75, 88, 72, 92, 62, 99, 77, 60, 
                           79, 90, 83)
)

# Guardar la base de datos en un archivo CSV

readr::write_csv(data, "academic_data.csv")

La base de datos ya se creó y guardó. A continuación se muestran los primeros 10 registros.

student_id absences academic_performance
1 10 75
2 5 88
3 12 70
4 3 92
5 7 85
6 8 78
7 11 72
8 2 95
9 15 60
10 6 80

Etapa 2: Inspección de datos y ajuste de modelos

Antes de ajustar nuestro modelo lineal, vamos a inspeccionar los datos. Para ello hareamos un gráfico de dispersión que muestre visualmente la relación entre las ausencias y el rendimiento académico.

library(ggplot2)
# Crear un gráfico de dispersión con la línea de regresión
ggplot(data, aes(x = absences, y = academic_performance)) +
  geom_point() +
  labs(title = "Relación entre Ausencias y Rendimiento Académico",
       x = "Número de Ausencias",
       y = "Rendimiento Académico")

Del gráfico se observa una relación inversa, es decir, en la medida que el Número de ausencias aumenta el Redimiento académico disminuye. Veamos si esta relación es significativa estadísticamente hablando (recuerde las tres preguntas fundamentales del curso). Para ello, ajustaremos el siguiente modelo lineal

\[\text{Rendimiento Academico}= \beta_0 + \beta_1 \text{Ausencias} + \varepsilon\] Ajustamos el modelo anterior a los datos.

# Ajustar el modelo de regresión lineal
model <- lm(academic_performance ~ absences, data = data)

El resultado (ouput) se muestra a continuación usando la función summary():

# Resumen del modelo
summary(model)

Call:
lm(formula = academic_performance ~ absences, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.5018 -0.8314  0.1634  1.1616  3.1657 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 100.50642    0.44433  226.20   <2e-16 ***
absences     -2.66744    0.04794  -55.65   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.569 on 58 degrees of freedom
Multiple R-squared:  0.9816,    Adjusted R-squared:  0.9813 
F-statistic:  3096 on 1 and 58 DF,  p-value: < 2.2e-16

Etapa 3: Formateo de resultados

Podemos mostrar el output de manera más amigable usando la función tab_model de la libera librería sjPlot. El ouput` se muestra a continuación:

sjPlot::tab_model(model,show.se = TRUE, show.stat = TRUE)
  academic performance
Predictors Estimates std. Error CI Statistic p
(Intercept) 100.51 0.44 99.62 – 101.40 226.20 <0.001
absences -2.67 0.05 -2.76 – -2.57 -55.64 <0.001
Observations 60
R2 / R2 adjusted 0.982 / 0.981

Usando la información anterior, la ecuación que específica muestro modelo lineal queda de la siguiente forma:

\[\text{Rendimiento Academico}= 100.51 -2.67 \text{Ausencias} + \varepsilon\] Es decir, los puntajes de Rendimiento academico quedan predichos por el siguiente modelo \[\text{Rendimiento Academico}_{\text{Predicho}}= 100.51 -2.67 \text{Ausencias}\]

A continuación, se muestra en un gráfico de dispersión con la recta ajustada a los datos

library(ggplot2)
# Crear un gráfico de dispersión con la regresión
ggplot(data, aes(x = absences, y = academic_performance)) +
  geom_point() +
  geom_smooth(method = "lm", col = "blue") +
  labs(title = "Relación entre Ausencias y Rendimiento Académico",
       x = "Número de Ausencias",
       y = "Rendimiento Académico")
`geom_smooth()` using formula = 'y ~ x'

Etapa 4: Reporte de resultados

Los resultados indican una relación negativa y estadísticamente significativa entre el número de ausencias a clases durante el semestre y el rendimiento académico de las y los estudiantes, \(F(1, 58) = 3096\), \(p < .01\). Específicamente, por cada ausencia adicional se observa una disminución promedio de 2.67 puntos en el rendimiento académico de las y los estudiantes. El modelo presenta un buen ajuste, explicando aproximadamente el \(98\%\) de la variabilidad observada en los datos (\(R^2 = 0{.}982\)), lo que sugiere una alta capacidad predictiva de la ausencias sobre el rendimiento académico.

Nota

-Note que aquí hemos exagerado los efectos de la relación entre ausencia a clases y rendimiento académico.

Interpretación del intercepto (\(\beta_0\)) y pendiente (\(\beta_1\))

  • El intercepto \(\beta_0\) es 100.5064, lo que indica que cuando el número de ausencias es cero, el rendimiento académico promedio de los estudiantes es 100.5064 puntos. Recuerde que el intercepto es el valor que toma \(\hat Y\) para los casos en que \(X=0\).

  • El coeficiente de ausencias (\(\beta_1\), o pendiente) es -2.6674, lo que indica que por cada día de ausencia adicional, el rendimiento académico promedio de los estudiantes disminuye aproximadamente 2.67 puntos. Recuerde que la pendiente expresa la magnitud del cambio en \(Y\) por unidad de cambio en \(X\) (para este caso dado que \(X\) está medido en días, entonces una unidad de cambio en \(X\) significa un día adicional de ausencia a clases durante el primer semestre).

  • El valor \(p\) asociado con el coeficiente de ausencias es menor que 0.001, indicando que la relación entre el número de ausencias y el rendimiento académico es estadísticamente significativa.

  • El coeficiente de determinación (\(R^2\)) igual a 0.982 indica que el 98.2% de la variabilidad en el rendimiento académico puede ser explicada por el número de ausencias.

Caso 2

Ahora vamos a utilizar una variable independiente categórica para comprender cómo interpretar los resultados de una regresión lineal simple.

Etapa 1: Abrir/Crear los datos

  • Vamos a crea la base de datos en R y la vamos a guardar como un archivo CSV para su posterior análisis. Note que ahora utilizamos la función data.frame() para construir nuestra tabla.
# Crear la base de datos
data_g <-  data.frame(
  student_id = 1:60,
  gender = c(rep(1, 30), rep(0, 30)), # 0 para hombres, 1 para mujeres
  academic_performance = c(95, 88, 70, 92, 85, 78, 83, 95, 91, 80, 86, 85, 90, 92, 98, 58,
                           83, 86, 78, 93, 77, 94, 82, 81, 96, 94, 75, 66, 91, 97, 61, 79,
                           84, 69, 94, 87, 73, 81, 76, 63, 74, 67, 89, 97, 78, 59, 85, 70,
                           80, 75, 88, 72, 92, 62, 99, 77, 60, 79, 90, 83)
)


# Guardar la base de datos en un archivo CSV
readr::write_csv(data_g, "academic_data_gender.csv")

La base de datos ya se creó y guardo. A continuación se muestran los primeros 10 registros.

student_id gender academic_performance
1 1 1 95
2 2 1 88
3 3 1 70
4 4 1 92
5 5 1 85
40 40 0 63
41 41 0 74
42 42 0 67
43 43 0 89
44 44 0 97

Etapa 2: Inspección de datos y ajuste de modelos

Antes de ajustar nuestro modelo lineal, vamos a inspeccionar los datos. Para ello haremos estadística descriptiva y un gráfico boxplot para explorar visualmente la relación entre entre el género y el rendimiento académico. Note que debido a que nuestra variable independiente \(X\) es el género, se requiere una categoría para expresar a las mujeres y hombres. En este caso, esta variable se encuentra codificada con un 0 para identificar a los hombres y con un 1 para identificar a las mujeres).

Para el análisis descriptivo, se emplearon la media y la desviación estándar del rendimiento académico según género. Los resultados, presentados a continuación, muestran que las mujeres obtuvieron un puntaje promedio más alto (\(M = 85.3\), \(DE = 9.65\)) en comparación con los hombres (\(M = 78.1\), \(DE = 11.20\)).

data_g %>%
  dplyr::group_by(gender) %>%
  dplyr::summarise(
    academic_performance_mean = mean(academic_performance, na.rm = T),
    academic_performance_SD = sd(academic_performance, na.rm = T)
  )
gender academic_performance_mean academic_performance_SD
0 78.1 11.198368
1 85.3 9.645975

El gráfico boxplot, muestra

library(ggplot2)
# Crear un gráfico de dispersión con la línea de regresión
ggplot(data_g, aes(x = factor(gender), y = academic_performance)) +
  geom_boxplot() +
  labs(title = "Relación entre Género y Rendimiento Académico",
       x = "Género (0 = Hombre, 1 = Mujer)",
       y = "Rendimiento Académico")

Ambas fuentes de evidencia indican que existe una relación entre el género y el rendimiento académico, es decir, que el rendimiento académico promedio es diferente entre hombres y mujeres. Pongamos a prueba esta hipótesis ajustando el siguiente modelo lineal

\[\text{Rendimiento Academico}= \beta_0 + \beta_1 \text{Genero} + \varepsilon\]

Nota

-Note que este tipo de situación ya la hemos abordado anteriormente, pero por medio de una prueba \(t\). Más adelante se verá que por medio de un modelo de regresión lineal es posible recuperar los resultados de una prueba \(t\).

Ajustamos el modelo anterior a los datos construidos. El resultado (ouput) se muestra a continuación usando la función summary():

# Ajustar el modelo de regresión lineal
model_g <- lm(academic_performance ~ gender, data = data_g)

# Resumen del modelo
summary(model_g)

Call:
lm(formula = academic_performance ~ gender, data = data_g)

Residuals:
   Min     1Q Median     3Q    Max 
-27.30  -6.40   0.70   7.95  20.90 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   78.100      1.908  40.931  < 2e-16 ***
gender         7.200      2.698   2.668  0.00987 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 10.45 on 58 degrees of freedom
Multiple R-squared:  0.1093,    Adjusted R-squared:  0.09397 
F-statistic: 7.119 on 1 and 58 DF,  p-value: 0.009871

Etapa 3: Formateo de resultados

Podemos mostrar el output de manera más amigable usando la función tab_model de la libera librería sjPlot. El ouput`se muestra a continuación:

sjPlot::tab_model(model_g,show.se = TRUE, show.stat = TRUE)
  academic performance
Predictors Estimates std. Error CI Statistic p
(Intercept) 78.10 1.91 74.28 – 81.92 40.93 <0.001
gender 7.20 2.70 1.80 – 12.60 2.67 0.010
Observations 60
R2 / R2 adjusted 0.109 / 0.094

Usando la información anterior, la ecuación que específica muestro modelo lineal queda de la siguiente forma:

\[\text{Rendimiento Academico}= 78.10 + 7.2 \text{Genero} + \varepsilon\] Es decir, los puntajes de Rendimiento academico quedan predichos por el siguiente modelo \[\text{Rendimiento Academico}_{\text{Predicho}}= 78.10 + 7.2 \text{Genero}\]

Etapa 4: Reporte de resultados

Se observa una relación positiva y estadísticamente significativa entre el género y el rendimiento académico, \(F(1, 58) = 7.119\), \(p < .01\). En promedio, las mujeres presentan un rendimiento académico 7.20 puntos superior al de los hombres (\(B_1 = 7.20\), \(p < .01\)). Este efecto del género explica aproximadamente un \(10.9\%\) de la variabilidad en el rendimiento académico (\(R^2 = 0.109\)).

Nota

-Note que aquí hemos exagerado los efectos de la relación entre Genero y rendimiento académico.

Interpretación del intercepto (\(\beta_0\)) y pendiente (\(\beta_1\))

  • El intercepto \(\beta_0\) es 78.10, lo que indica que cuando el Genero es cero, el rendimiento académico promedio de los estudiantes es 78.10 puntos. Seguramente ya notó que decir cuando el Genero es cero no tiene mucho sentido ¿Qué significa cuando Genero es cero?. Para respoder esto, tenemos que ir al inicio y recordar cómo está codificada la variable Genero (cuál fue la categoría que está codificada con el valor 0). Luego de revisar, vemos que el 0 fue asignado para representar a los hombres y 1 para representar a las mujeres. Por lo tanto, la forma adecuada de interpreterar el coeficiente \(\beta_0 = 78.10\) sería: El interpceto \(\beta_0=78.10\) indica el rendimiento académico promedio que obtienen los hombres (es decir, cuando \(Genero = 0\)). Notemos que este intercepto coindice con el promedio que obtuvimos para los hombres cuando hicimos estadística descriptiva (\(M=78.1, DS=11.20\)). En otras palabras, dada la codificación de la variable Genero, a partir del intercepto podemos recuperar el promedio del rendimiento académico para los hombres.

  • El coeficiente \(\beta_1\) o pendiente es +7.2, lo que indica una relación positiva (y ya vimos que significativa) entre el género y el rendimiento académico. Una interpretación más sustantiva de este coeficiente indica que las mujeres (codificada por 1) en promedio tienen un rendimiento académico 7.2 puntos más alto que los hombres. Al realizar esta comparación, –es decir el promedio de las mujeres en comparación con el promedio de los hombres–, se está expresando la unidad de cambio en la variable independiente (categoria 1 en comparación con la categoria 0) para expresar el cambio en la variable dependiente.

  • Note que si utilizamos el modelo dado por \(\text{Rendimiento Academico}_{\text{Predicho}}= 78.10 + 7.2 \text{Genero}\) y reemplazamos \(Genero=1\), es decir, consideramos a las mujeres, el valor que toma \(\text{Rendimiento Academico}_{\text{Predicho}}\) es

\[\text{Rendimiento Academico}_{\text{Predicho}}= 78.10 + 7.2 \text{Genero}\] \[\text{Rendimiento Academico}_{\text{Predicho}}= 78.10 + 7.2 (1)\] \[\text{Rendimiento Academico}_{\text{Predicho}}= 78.10 + 7.2=85.3\] que corresponde al puntaje promedio de rendimiento académico que observamos para las mujeres cuando hicimos estadística descriptiva (\(M=85.3, DS=9.65)\).

  • El valor \(p\) asociado con el coeficiente de ausencias es menor que 0.01, indicando que la relación entre Género y el rendimiento académico es estadísticamente significativa.

  • El coeficiente de determinación (\(R^2\)) de 0.109 indica que el 10.9% de la variabilidad en el rendimiento académico puede ser explicada por el Genero.

Ejemplo de Reportes: Publicaciones

Artículos de investigación que reportan evidencia de regresión lineal simple

  • Treviño, E., Scheele, J., & Flores, S. M. (2014). Beyond the test score: A mixed methods analysis of a college access intervention in Chile. Journal of Mixed Methods Research, 8(3), 255–265. https://doi.org/10.1177/1558689814527940

Página cortada.

Extracto de reporte de resultados.
  • Ellis, R. A., Han, F., & Pardo A. (2017). Improving Learning Analytics – Combining Observational and Self-Report Data on Student Learning. Educational Technology & Society, 20 (3), 158–169. https://www.jstor.org/stable/26196127

Página portada.

Extracto de reporte de resultados. Mirar resultados del Model 1.
Back to top